#ifndef __OBJ_COMMON_H__
#define __OBJ_COMMON_H__

#include "lvgl/lvgl.h"
#include <stdio.h>
#include <stdlib.h>
#include "log_wrapper.h"

//自定义一个userdata结构体
typedef struct {
    int data1;
    char screen_name[30];
    lv_obj_t *(*previousScreen_init)(void);
} custom_data_t;

// 创建userdata结构体
custom_data_t * ui_create_userdata(void);
extern lv_indev_t *indev_keypad;
extern uint32_t COMMON_LV_EVENT_GET_COMP_CHILD;
// 销毁userdata结构体
void ui_destroy_userdata(lv_obj_t * obj);

void common_del_component_child_event_cb(lv_event_t * e);
void common_get_component_child_event_cb(lv_event_t * e);
lv_obj_t * common_ui_comp_get_child(lv_obj_t * comp, uint32_t child_idx);
lv_obj_t ** common_ui_comp_get_parent(lv_obj_t * comp);

void common_del_obj_user_data_event_cb(lv_event_t * e);
void common_del_event_data_event_cb(lv_event_t * e);

void draw_dashed_borders(lv_obj_t *obj, uint16_t width, uint16_t height);

void ui_update_top_padding(lv_obj_t* obj,lv_coord_t top_padding);

void ui_screen_group_deinit_common(lv_obj_t **screen,lv_group_t **group);
void * malloc_set_zero(uint32_t size);

LV_FONT_DECLARE(lv_font_siyuan_bold_24)
LV_FONT_DECLARE(lv_font_siyuan_light_16)
LV_FONT_DECLARE(lv_font_siyuanlight_16)
#define CHINESE_FONT_16_LIGHT &lv_font_siyuan_light_16
#define CHINESE_FONT_24_BOLD &lv_font_siyuan_bold_24
#endif